Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>SETL</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/SETL"> <link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-SETL rootpage-SETL skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">SETL</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p><b>SETL</b> (Set Language, engl. für Mengensprache) ist eine höhere <a href="Programmiersprache" title="Programmiersprache">Programmiersprache</a> die auf der <a href="Mengenlehre" title="Mengenlehre">Mengenlehre</a> der <a href="Mathematik" title="Mathematik">Mathematik</a> aufbaut. Sie wurde 1969/70 von <a href="Jacob_T._Schwartz" title="Jacob T. Schwartz">Jack T. Schwartz</a> am <a href="Courant_Institute_of_Mathematical_Sciences_of_New_York_University" title="Courant Institute of Mathematical Sciences of New York University">Courant Institute of Mathematical Sciences of New York University</a> entwickelt.
</p><p>Als fundamentale <a href="Datentyp" title="Datentyp">Datentypen</a> kennt SETL <a href="Integer_(Datentyp)" title="Integer (Datentyp)">Integer</a>, <a href="Gleitkommazahl" title="Gleitkommazahl">Real</a>, <a href="Zeichenkette" title="Zeichenkette">String</a>, <a href="Boolean" title="Boolean">Boolean</a> und den <a href="Nullwert" title="Nullwert">Nullwert</a> <i>Omega</i> (om). Es gibt keine <a href="Starke_Typisierung" title="Starke Typisierung">starke Typisierung</a>, der Datentyp einer <a href="Variable_(Programmierung)" title="Variable (Programmierung)">Variable</a> wird je nach zugewiesenem Inhalt angepasst. Des Weiteren verfügt SETL über <a href="Automatische_Speicherbereinigung" class="mw-redirect" title="Automatische Speicherbereinigung">automatische Speicherbereinigung</a>.
</p><p>SETL kennt zwei <a href="Datenstruktur" title="Datenstruktur">Datenstrukturen</a>, das unsortierte <i>set</i> (engl. <a href="Menge_(Datenstruktur)" title="Menge (Datenstruktur)">Menge</a>) und das <i>tuple</i> (engl. <a href="Tupel" title="Tupel">Tupel</a>) als geordnete Folge von Elementen. Ein <i>set</i> weist die Besonderheit auf, dass in ihm kein Wert doppelt vorkommt, bei einem <i>tuple</i> ist dies jedoch gestattet. Bis auf diese Einschränkung ist der Inhalt von einem <i>set</i> oder einem <i>tuple</i> beliebig, sie können auch weitere <i>sets</i> und <i>tuples</i> beinhalten. Ein Sonderfall ist die <i>map</i> (kurz für <i>mapping</i>, engl. <a href="Funktion_(Mathematik)" title="Funktion (Mathematik)">Abbildung</a>). Sie ist eine Menge von geordneten Paaren und besteht aus <i>tuples</i> der Länge 2.
</p><p>Des Weiteren stellt SETL <a href="Do-while-Schleife" class="mw-redirect" title="Do-while-Schleife">do-while-Schleifen</a>, <a href="Verzweigung_(Programmierung)" class="mw-redirect" title="Verzweigung (Programmierung)">if-then-else- und case-Anweisungen</a> zur Verfügung. Auch gibt es spezialisierte Schleifen zum Durchlaufen von <i>tuples</i> und <i>sets</i>.
</p><p>Von Hause aus kennt SETL zahlreiche <a href="Operator_(Mathematik)" title="Operator (Mathematik)">Operatoren</a> für die <a href="Grundrechenart" title="Grundrechenart">Grundrechenarten</a>, sowie <a href="Trigonometrie" title="Trigonometrie">trigonometrische</a> und andere mathematische Aufgaben. Des Weiteren besitzt SETL spezielle Operatoren zum Arbeiten mit Mengen und Zeichenketten. Außerdem kann man eigene Operatoren festlegen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Implementierung">Implementierung</h2></div>
<p>Aufgrund der jahrelangen Zusammenarbeit der New York University und Wissenschaftlern aus <a href="Nowosibirsk" title="Nowosibirsk">Nowosibirsk</a>, wurde SETL nicht nur auf Rechnern der amerikanischen Firma <a href="Burroughs_Corporation" title="Burroughs Corporation">Burrough</a>, sondern auch auf russischen Rechnern vom Typ <a href="BESM_(Computer)" title="BESM (Computer)">BESM-6</a> und <a href="ES_EVM" class="mw-redirect" title="ES EVM">ES EVM</a> implementiert. Mittlerweile gibt es auch verschiedene Implementierungen für alle gängigen <a href="Betriebssystem" title="Betriebssystem">Betriebssysteme</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Beispielquelltext">Beispielquelltext</h2></div>
<p>Zwei Beispiele zum Ausgeben aller <a href="Primzahl" title="Primzahl">Primzahlen</a> von 2 bis n. Besonders am zweiten Beispiel lässt sich erkennen, dass die Sprache auf der Mengenlehre aufbaut.
</p>
<pre><b>program</b> primzahlen;
<span style="color:grey;"><i>$ Dieses Programm gibt alle Primzahlen aus, die kleiner als der eingelesene Parameter sind</i></span>
<b>read</b>(<span style="color:blue;">n</span>); <span style="color:grey;"><i>$lese Parameter ein</i></span>
<span style="color:blue;">primes</span>&nbsp;:= { }; <span style="color:grey;"><i>$Menge der ausgegebenen Primzahlen</i></span>
<span style="color:blue;">p</span>&nbsp;:= <span style="color:darkgreen;">2</span>; <span style="color:grey;"><i>$erste Primzahl festlegen</i></span>
<span style="color:grey;"><i>$ Schleife um weitere Primzahlen zu ermitteln</i></span>
<b>loop while</b> <span style="color:blue;">p</span> &lt; <span style="color:blue;">n</span> <b>do</b> <span style="color:grey;"><i>$ Wiederhole solange p kleiner als n ist</i></span>
<b>if notexists</b> <span style="color:blue;">t</span> <b>in</b> <span style="color:blue;">primes</span> | <span style="color:blue;">p</span> <b>mod</b> <span style="color:blue;">t</span> = <span style="color:darkgreen;">0</span> <b>then</b>
<b>print</b>(<span style="color:blue;">p</span>); <span style="color:grey;"><i>$keine der bisherig ermittelten Primzahlen ist Teiler von p, also gib die Primzahl aus</i></span>
<span style="color:blue;">primes</span> <b>with</b>&nbsp;:= <span style="color:blue;">p</span>; <span style="color:grey;"><i>$Füge sie zur Menge der ausgegebenen Primzahlen hinzu</i></span>
<b>end if</b>;
<span style="color:blue;">p</span>&nbsp;:= <span style="color:blue;">p</span> + <span style="color:darkgreen;">1</span>; <span style="color:grey;"><i>$Zu testende Zahl um eins erhöhen</i></span>
<b>end loop</b>;
<b>end program</b> primzahlen;
</pre>
<pre><b>program</b> primzahlen2;
<b>read</b>(<span style="color:blue;">n</span>);
<b>print</b>({<span style="color:blue;">p</span> <b>in</b> {<span style="color:darkgreen;">2</span>..<span style="color:blue;">n</span>} | <b>forall</b> <span style="color:blue;">t</span> <b>in</b> {<span style="color:darkgreen;">2</span>..<span style="color:blue;">p</span> - <span style="color:darkgreen;">1</span>} | <span style="color:blue;">p</span> <b>mod</b> <span style="color:blue;">t</span> &gt; <span style="color:darkgreen;">0</span>});
<span style="color:grey;"><i>$Gib die Menge aller Zahlen p aus der Menge 2 bis n aus, für die gilt,</i></span>
<span style="color:grey;"><i>$dass p sich durch keine der Zahlen der Menge 2 bis p-1 glatt teilen lässt</i></span>
<b>end program</b> primzahlen2;
</pre>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://www.setl.org/">SETL gewidmeter Web-Auftritt</a></li>
<li><a rel="nofollow" class="external text" href="https://cs.nyu.edu/~bacon/setl-doc.html">Dokumentation der SETL Programmiersprache (engl.)</a></li>
<li><a rel="nofollow" class="external text" href="http://cs1.cs.nyu.edu/bacon/download-setl.html">SETL Compiler (engl.)</a></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-11-23" href="https://de.wikipedia.org/wiki/?title=SETL&amp;oldid=261792554">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>